package interfaces;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.ArrayList;

public interface Serveur_ITF extends Remote {

	/**
	 * Allow a client to ask the server to add itself to the "client list"
	 * 
	 * @param clientIMPL
	 * @throws RemoteException
	 */
	public void addClient(Client_ITF clientIMPL) throws RemoteException;

	/**
	 * Allow a client to ask the server for its initial neighbors list
	 * 
	 * @param client
	 * 
	 * @return a list of client
	 * @throws RemoteException
	 */
	public ArrayList<Client_ITF> getNeighbors(Client_ITF client)
			throws RemoteException;
	
	/**
	 * Allow a client to disconnect itself from the network
	 * 
	 * @param client
	 * @throws RemoteException
	 */
	public void removeClient(Client_ITF client) throws RemoteException;

}
